[IA64] Fixed arch_domain_create
authorawilliam@xenbuild.aw <awilliam@xenbuild.aw>
Fri, 17 Feb 2006 21:34:17 +0000 (14:34 -0700)
committerawilliam@xenbuild.aw <awilliam@xenbuild.aw>
Fri, 17 Feb 2006 21:34:17 +0000 (14:34 -0700)
This patch fixed the process when xenheap shortage occurred
in arch_domain_create().

Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
xen/arch/ia64/xen/domain.c

index 5fcafa83aa4f7a625226429f95ab9bba80f03f33..273821187ecdfda6b5137ac4abfde7ec73919def 100644 (file)
@@ -251,9 +251,12 @@ int arch_domain_create(struct domain *d)
        return 0;
 
 fail_nomem:
-       free_xenheap_page(d->shared_info);
-       xfree(d->arch.mm);
-       pgd_free(d->arch.mm->pgd);
+       if (d->arch.mm->pgd != NULL)
+           pgd_free(d->arch.mm->pgd);
+       if (d->arch.mm != NULL)
+           xfree(d->arch.mm);
+       if (d->shared_info != NULL)
+           free_xenheap_page(d->shared_info);
        return -ENOMEM;
 }